unit clsResumoAtividade;

interface

uses biblio,dm,dbtables;

type
  TResumoAtividade=class(tobject)
    public
     ResAtiv_contato: string;
     ResAtiv_data   : TDateTime;
     ResAtiv_tipo   : string;
     ResAtiv_HoraIni: string;
     ResAtiv_HorFim : string;
     ResAtiv_HorTot : string;
     ResAtiv_TotKm  : integer;
     ResAtiv_Suporte: string;
     ResAtiv_Usuario: string;
     ResAtiv_Relato : string;
     ResAtiv_Valor  : double;
     procedure Gravar(P_ResAtiv_Numero: String);
     procedure Excluir(P_ResAtiv_Numero: String);
     procedure Consultar(P_ResAtiv_data: TDateTime; var P_q: TQuery);
     function  Recuperar(P_ResAtiv_Numero: String): boolean;
     function  Maior_Codigo                       : int64;
    end;
implementation

{ TResumoAtividade }

procedure TResumoAtividade.Consultar;
begin
 p_q.close;
 p_q.sql.clear;
 p_q.Params.clear;
 p_q.sql.add('Select * from ResumoAtividade where ResAtiv_data>=:K_data');
 p_q.ParamByName('K_data').asdatetime:= P_ResAtiv_data;
 p_q.open;
end;

procedure TResumoAtividade.Excluir;
var tq: TQuery;
begin
 tq             := TQuery.create(dmint);
 tq.DatabaseName:= dmint.db.DatabaseName;
 tq.Active      := false;
 tq.sql.clear;
 tq.params.clear;
 tq.sql.add('Delete from ResumoAtividade where ResAtiv_numero=:K_ResAtiv_Numero');
 tq.ParamByName('K_ResAtiv_Numero').AsString:= strzero(P_ResAtiv_Numero,4);
 tq.execsql;
 tq.Close;
 tq.free;
end;

procedure TResumoAtividade.Gravar;
var tq: TQuery;
begin
 tq             := TQuery.create(dmint);
 tq.DatabaseName:= dmint.db.DatabaseName;
 tq.Active      := false;
 tq.sql.clear;
 tq.params.clear;
 tq.sql.add('Select * from ResumoAtividade where ResAtiv_numero=:K_ResAtiv_Numero');
 tq.ParamByName('K_ResAtiv_Numero').AsString:= strzero(P_ResAtiv_Numero,4);
 tq.open;
 if tq.eof then begin
  tq.close;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('Insert into ResumoAtividade values(' +
             ':K_ResAtiv_numero ,'+
             ':K_ResAtiv_contato,'+
             ':K_ResAtiv_data   ,'+
             ':K_ResAtiv_tipo   ,'+
             ':K_ResAtiv_HoraIni,'+
             ':K_ResAtiv_HorFim ,'+
             ':K_ResAtiv_HorTot ,'+
             ':K_ResAtiv_TotKm  ,'+
             ':K_ResAtiv_suporte,'+
             ':K_ResAtiv_usuario,'+
             ':K_ResAtiv_relato ,'+
             ':K_ResAtiv_valor  )');
 end else begin
  tq.close;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('Update ResumoAtividade set         ' +
             'ResAtiv_contato=:K_ResAtiv_contato,'+
             'ResAtiv_data   =:K_ResAtiv_data   ,'+
             'ResAtiv_tipo   =:K_ResAtiv_tipo   ,'+
             'ResAtiv_HoraIni=:K_ResAtiv_HoraIni,'+
             'ResAtiv_HorFim =:K_ResAtiv_HorFim ,'+
             'ResAtiv_HorTot =:K_ResAtiv_HorTot ,'+
             'ResAtiv_TotKm  =:K_ResAtiv_TotKm  ,'+
             'ResAtiv_suporte=:K_ResAtiv_suporte,'+
             'ResAtiv_usuario=:K_ResAtiv_usuario,'+
             'ResAtiv_relato =:K_ResAtiv_relato ,'+
             'ResAtiv_valor  =:K_ResAtiv_valor   '+
             'where                              '+
             'ResAtiv_numero =:K_ResAtiv_numero  ');
 end;
 tq.ParamByName('K_ResAtiv_numero').AsString := strzero(P_ResAtiv_Numero,4);
 tq.ParamByName('K_ResAtiv_contato').AsString:= ResAtiv_contato;
 tq.ParamByName('K_ResAtiv_data').AsDate     := ResAtiv_data;
 tq.ParamByName('K_ResAtiv_tipo').AsString   := ResAtiv_tipo;
 tq.ParamByName('K_ResAtiv_HoraIni').AsString:= ResAtiv_HoraIni;
 tq.ParamByName('K_ResAtiv_HorFim').AsString := ResAtiv_HorFim;
 tq.ParamByName('K_ResAtiv_HorTot').AsString := ResAtiv_HorTot;
 tq.ParamByName('K_ResAtiv_TotKm').AsInteger := ResAtiv_TotKm;
 tq.ParamByName('K_ResAtiv_suporte').AsString:= ResAtiv_suporte;
 tq.ParamByName('K_ResAtiv_usuario').AsString:= ResAtiv_usuario;
 tq.ParamByName('K_ResAtiv_relato').AsBlob   := ResAtiv_relato;
 tq.ParamByName('K_ResAtiv_valor').AsFloat   := ResAtiv_Valor;
 tq.ExecSQL;
 tq.close;
 tq.free;
end;

function TResumoAtividade.Maior_Codigo;
var tq: TQuery;
begin
 tq             := TQuery.create(dmint);
 tq.DatabaseName:= dmint.db.DatabaseName;
 tq.Active      := false;
 tq.SQL.Clear;
 tq.Params.clear;
 tq.sql.add('Select max(ResAtiv_Numero) maior from ResumoAtividade');
 tq.open;
 if tq.fieldbyname('maior').IsNull then
  result:= 1
 else
  result:= tq.fieldbyname('maior').AsInteger+1;
 tq.close;
 tq.free;
end;

function TResumoAtividade.Recuperar;
var tq: TQuery;
begin
 tq             := TQuery.create(dmint);
 tq.DatabaseName:= dmint.db.DatabaseName;
 tq.Active      := false;
 tq.sql.clear;
 tq.params.clear;
 tq.sql.add('Select * from ResumoAtividade where ResAtiv_numero=:K_ResAtiv_Numero');
 tq.ParamByName('K_ResAtiv_Numero').AsString:= strzero(P_ResAtiv_Numero,4);
 tq.open;
 if tq.eof then result:= false else result:= true;
 ResAtiv_contato:= tq.fieldbyname('ResAtiv_contato').AsString;
 ResAtiv_data   := tq.fieldbyname('ResAtiv_data').AsDateTime;
 ResAtiv_tipo   := tq.fieldbyname('ResAtiv_tipo').AsString;
 ResAtiv_HoraIni:= tq.fieldbyname('ResAtiv_HoraIni').AsString;
 ResAtiv_HorFim := tq.fieldbyname('ResAtiv_HorFim').AsString;
 ResAtiv_HorTot := tq.fieldbyname('ResAtiv_HorTot').AsString;
 ResAtiv_TotKm  := tq.fieldbyname('ResAtiv_TotKm').AsInteger;
 ResAtiv_Suporte:= tq.fieldbyname('ResAtiv_Suporte').AsString;
 ResAtiv_Usuario:= tq.fieldbyname('ResAtiv_Usuario').AsString;
 ResAtiv_Relato := tq.fieldbyname('ResAtiv_Relato').AsString;
 ResAtiv_valor  := tq.fieldbyname('ResAtiv_valor').AsFloat;
 tq.close;
 tq.free;
end;

end.
